package com.example.wangandroid.app

import android.app.Application
import com.alibaba.android.arouter.facade.annotation.Autowired
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.blankj.utilcode.util.LogUtils
import com.example.common.MMKVUtils


import com.example.common.NetlibXK
import com.example.common.UrlData
import com.example.common.User
import com.example.utils.CommonUtils



import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.core.context.GlobalContext.startKoin


@Route(path = "/app/application")
open class MyApp : Application() {
    var m_user: User? = null

    @Autowired(name = "/app/net/netlibxk")
    var nk: NetlibXK? = null
    override fun onCreate() {
        super.onCreate()
        NetlibXK.getInstance().init(UrlData.base_url)
        initMMKV()
        LogUtils.getConfig().stackDeep = 3
        m_user = User()
        ArouterInit()

        instance = this;
        initUtils()
    }
    fun initUtils(){
        CommonUtils.initCommonUtils(this);
    }

   fun initMMKV(){
        MMKVUtils.init(this)
    }

    private fun ArouterInit(){
        // 这两行必须写在init之前，否则这些配置在init过程中将无效
        ARouter.openLog() // 打印日志
        ARouter.openDebug() // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
        ARouter.printStackTrace()
        ARouter.init(this)
    }



    companion object {
        var instance: MyApp?=  null
    }
}
